using System;
using System.Collections.Generic;
using System.Text;
using TaugeLibrary.Classes.Abstracts;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using TaugeLibrary.Classes;

namespace TaugeLibrary.Interfaces
{
    public interface ITaugeFramework
    {
        void ShowBusinessUnitForm(ABusinessUnitManager p_unit_mgr);
        void ShowBusinessUnitListForm(ABusinessUnitManager p_unit_mgr);
        void ShowForm(Form f);
        void ShowDialog(Form f);
        
        string Encrypt(string p_target, string p_key);
        string Decrypt(string p_target, string p_key);

        int generateCheckSum(params string[] astr);

        void writeUI(object o, ContainerControl f);
        void readUI(object o, ContainerControl f);

        int getActiveUserId();



        object executeScalar(string p_dbtype, string p_sql);
        object executeScalar(string p_dbtype, string p_sql, object p_default);
        SqlDataReader executeReader(string p_dbtype, string p_sql);
        SqlDataReader executeReader(string p_dbtype, SqlCommand p_sc);
        int executeNonQuery(string p_dbtype, string p_sql);
        int[] executeNonQuery(string p_dbtype, List<SqlCommand> p_sc, SqlTransaction p_st);
        int[] executeNonQuery(string p_dbtype, string[] p_sql, SqlTransaction p_st);
        int executeNonQuery(string p_dbtype, SqlCommand p_sc);
        int[] executeNonQuery(string p_dbtype, SqlCommand[] p_sc, SqlTransaction p_st, params string[] p_output);
        DataTable executeDataTable(string p_dbtype, string p_strsql);
        DataTable executeDataTable(string p_dbtype, SqlCommand p_sc);
        string newTempTable(string p_dbtype);



        void executeTaugeCommand(string p_dbtype, TaugeCommand[] acmd,params string[] p_output);
    }
}
